<?php

Class BankAccountsController extends AppController {

    public $name = 'BankAccounts';

    public function add($proyect_id) {
        $this->layout = "ajax";
        if (empty($this->data)) {
            App::Import('Model', 'Candidate');
            $aspirantes = new Candidate();
            $aspirantes->recursive = -1;
            $this->set('proyect_id', $proyect_id);
            $this->set('candidates', $aspirantes->find('all', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.estado_filtro' => array(1, 5, 6)), 'fields' => array('Candidate.id', 'Candidate.1er_apellido', 'Candidate.2do_apellido', 'Candidate.1er_nombre', 'Candidate.2do_nombre', 'Candidate.nro_ident'), 'order' => array('Candidate.1er_apellido' => 'ASC'))));
        } else {

            if ($this->BankAccount->save($this->data)) {
                $lastId = $this->BankAccount->getInsertID();
                App::Import('Model', 'Proyect');
                $Proyect = new Proyect();
                $Proyect->recursive = -1;
                $proyecto = $Proyect->find('first', array('conditions' => array('Proyect.id' => $proyect_id), 'fields' => array('Proyect.codigo')));
                $codigo = $proyecto['Proyect']['codigo'];
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;

                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Pagos";
                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }

                $nombreArchivo = "bancaria-$codigo-$lastId";
                $this->BankAccount->id = $lastId;
                $this->BankAccount->saveField('adjunto', 'files/' . $codigo . "/Pagos/" . $nombreArchivo);
                $nombreArchivo = $nombreArchivo . ".pdf";
                $rutaArchivo.= "/" . $nombreArchivo;
                try {
                    move_uploaded_file($this->data['BankAccount']['archivo']['tmp_name'], $rutaArchivo);
                    $this->Session->setFlash('Registro Adicionado correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'index', $proyect_id));
                } catch (Exception $exc) {
                    echo $exc->getMessage();
                    $this->Session->setFlash('No se pudo adjuntar archivo', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'index', $proyect_id));
                }
            } else {
                $this->Session->setFlash('Error Guardando datos');
            }
        }
    }

    public function addProperties($expense_property_id) {
        $this->layout = "ajax";
        if (empty($this->data)) {
            $this->set('expense_property_id', $expense_property_id);
            $proyect_id = $this->Session->read('proy_id');
            $this->set('proyect_id', $proyect_id);
        } else {

            if ($this->BankAccount->save($this->data)) {
                $lastId = $this->BankAccount->getInsertID();
                App::Import('Model', 'Proyect');
                $Proyect = new Proyect();
                $Proyect->recursive = -1;
                $proyecto = $Proyect->find('first', array('conditions' => array('Proyect.id' => $this->data['BankAccount']['proyect_id']), 'fields' => array('Proyect.codigo')));
                $codigo = $proyecto['Proyect']['codigo'];
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;

                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Pagos";
                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }

                $nombreArchivo = "bancaria-$codigo-$lastId";
                $this->BankAccount->id = $lastId;
                $this->BankAccount->saveField('adjunto', 'files/' . $codigo . "/Pagos/" . $nombreArchivo);
                $nombreArchivo = $nombreArchivo . ".pdf";
                $rutaArchivo.= "/" . $nombreArchivo;
                try {
                    move_uploaded_file($this->data['BankAccount']['archivo']['tmp_name'], $rutaArchivo);
                    $this->Session->setFlash('Registro Adicionado correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'indexProperties', $expense_property_id));
                } catch (Exception $exc) {
                    echo $exc->getMessage();
                    $this->Session->setFlash('No se pudo adjuntar archivo', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'indexProperties', $expense_property_id));
                }
            } else {
                $this->Session->setFlash('Error Guardando datos');
            }
        }
    }

    public function edit($id) {
        $this->layout = "ajax";
        $this->BankAccount->recursive = -1;
        if (empty($this->data)) {
            App::Import('Model', 'Candidate');
            $proyect_id = $this->Session->read('proy_id');
            $aspirantes = new Candidate();
            $aspirantes->recursive = -1;
            $this->set('candidates', $aspirantes->find('all', array('conditions' => array('Candidate.proyect_id' => $proyect_id, 'Candidate.estado_filtro' => array(1, 5, 6)), 'fields' => array('Candidate.id', 'Candidate.1er_apellido', 'Candidate.2do_apellido', 'Candidate.1er_nombre', 'Candidate.2do_nombre', 'Candidate.nro_ident'), 'order' => array('Candidate.1er_apellido' => 'ASC'))));
            $this->data = $this->BankAccount->find('first', array('conditions' => array('BankAccount.id' => $id), 'fields' => array('BankAccount.candidate_id', 'BankAccount.nombre_banco', 'BankAccount.tipo_titular', 'BankAccount.proyect_id', 'BankAccount.numero_cuenta', 'BankAccount.sucursal', 'BankAccount.tipo_cuenta', 'BankAccount.nombre_titular', 'BankAccount.documento_titular', 'BankAccount.controlada', 'BankAccount.adjunto', 'BankAccount.id')));
        } else {
            App::Import('Model', 'Proyect');
            $Proyect = new Proyect();
            $Proyect->recursive = -1;
            $proyecto = $Proyect->find('first', array('conditions' => array('Proyect.id' => $this->data['BankAccount']['proyect_id']), 'fields' => array('Proyect.codigo')));
            $codigo = $proyecto['Proyect']['codigo'];
            $nombreArchivo = "bancaria-$codigo-" . $this->data['BankAccount']['id'];
            $this->data['BankAccount']['adjunto'] = "files/$codigo/Pagos/" . $nombreArchivo;
            $nombreArchivo = $nombreArchivo . ".pdf";
            if ($this->BankAccount->save($this->data)) {
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;

                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Pagos";
                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }

                $rutaArchivo.= "/" . $nombreArchivo;
                try {
                    move_uploaded_file($this->data['BankAccount']['archivo']['tmp_name'], $rutaArchivo);
                    $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'index', $this->data['BankAccount']['proyect_id']));
                } catch (Exception $exc) {
                    echo $exc->getMessage();
                    $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'index', $this->data['BankAccount']['proyect_id']));
                }
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

    public function editProperties($id, $expense_property_id) {
        $this->layout = "ajax";
        $this->BankAccount->recursive = -1;
        if (empty($this->data)) {
            $proyect_id = $this->Session->read('proy_id');
            $this->data = $this->BankAccount->find('first', array('conditions' => array('BankAccount.id' => $id), 'fields' => array('BankAccount.valor', 'BankAccount.nombre_banco', 'BankAccount.tipo_titular', 'BankAccount.proyect_id', 'BankAccount.numero_cuenta', 'BankAccount.sucursal', 'BankAccount.tipo_cuenta', 'BankAccount.nombre_titular', 'BankAccount.documento_titular', 'BankAccount.controlada', 'BankAccount.adjunto', 'BankAccount.id')));
            $this->set('expense_property_id', $expense_property_id);
        } else {
            App::Import('Model', 'Proyect');
            $Proyect = new Proyect();
            $Proyect->recursive = -1;
            $proyecto = $Proyect->find('first', array('conditions' => array('Proyect.id' => $this->data['BankAccount']['proyect_id']), 'fields' => array('Proyect.codigo')));
            $codigo = $proyecto['Proyect']['codigo'];
            $nombreArchivo = "bancaria-$codigo-" . $this->data['BankAccount']['id'];
            $this->data['BankAccount']['adjunto'] = "files/$codigo/Pagos/" . $nombreArchivo;
            $nombreArchivo = $nombreArchivo . ".pdf";
            if ($this->BankAccount->save($this->data)) {
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;

                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Pagos";
                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }

                $rutaArchivo.= "/" . $nombreArchivo;
                try {
                    move_uploaded_file($this->data['BankAccount']['archivo']['tmp_name'], $rutaArchivo);
                    $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'indexProperties', $expense_property_id));
                } catch (Exception $exc) {
                    echo $exc->getMessage();
                    $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                    ////*
                    $this->redirect(array('controller' => 'BankAccounts', 'action' => 'indexProperties', $expense_property_id));
                }
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

    public function calification($id) {
        $this->layout = "ajax";
        $this->BankAccount->recursive = -1;
        if (empty($this->data)) {

            $this->data = $this->BankAccount->find('first', array('conditions' => array('BankAccount.id' => $id), 'fields' => array('BankAccount.calificacion', 'BankAccount.observacion', 'BankAccount.adjunto', 'BankAccount.id', 'BankAccount.proyect_id')));
        } else {

            if ($this->BankAccount->save($this->data)) {

                $this->Session->setFlash('Registro editado correctamente', 'flash_custom');
                $this->redirect(array('controller' => 'BankAccounts', 'action' => 'index', $this->data['BankAccount']['proyect_id']));
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

    public function index() {
        App::Import('Model', 'Proyect');
        $this->layout = "ajax";

        //Verifico si el proyecto ya fue publicado.
        $Proyect = new Proyect();
        $proyect_id = $this->Session->read('proy_id');

        if ($proyect_id != "") {
            $publicado = $Proyect->field('publicado', array('Proyect.id' => $proyect_id));

            if ($publicado == 1) {
                $this->set('proyect_id', $proyect_id);
                $this->paginate = array('BankAccount' => array('maxLimit' => 500, 'limit' => 50, 'recursive' => '-1', 'fields' => array('BankAccount.id', 'BankAccount.adjunto', 'BankAccount.tipo_cuenta', 'BankAccount.nombre_banco', 'BankAccount.numero_cuenta', 'BankAccount.nombre_titular', 'BankAccount.candidate_id', 'BankAccount.documento_titular')));
                $this->set('BankAccounts', $this->paginate('BankAccount', array('BankAccount.proyect_id' => $proyect_id, 'BankAccount.tipo_titular' => 'Beneficiario')));
            } else {
                $this->Session->setFlash('Este proyecto aún no ha sido publicado', 'flash_custom');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            }
        } else {
            $this->Session->setFlash('No ha seleccionado un proyecto', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        }
    }

    public function indexProperties($expense_property_id) {
        App::Import('Model', 'Proyect');
        App::Import('Model', 'ExpenseProperty');
        $this->layout = "ajax";

        //Verifico si el proyecto ya fue publicado.
        $Proyect = new Proyect();
        $subsidioPredio = new ExpenseProperty();
        $this->BankAccount->recursive = -1;
        $proyect_id = $this->Session->read('proy_id');

        if ($proyect_id != "") {
            $publicado = $Proyect->field('publicado', array('Proyect.id' => $proyect_id));

            if ($publicado == 1) {
                $this->set('proyect_id', $proyect_id);
                $this->set('expense_property_id', $expense_property_id);
                $this->set('valor_subsidio_predios', $subsidioPredio->field('valor', array('id' => $expense_property_id)));

                $this->paginate = array('BankAccount' => array('maxLimit' => 500, 'limit' => 50, 'fields' => array('BankAccount.id', 'BankAccount.adjunto', 'BankAccount.tipo_titular', 'BankAccount.nombre_banco', 'BankAccount.valor', 'BankAccount.nombre_titular', 'BankAccount.id', 'BankAccount.documento_titular')));
                $this->set('BankAccounts', $this->paginate('BankAccount', array('BankAccount.expense_property_id' => $expense_property_id)));
            } else {
                $this->Session->setFlash('Este proyecto aún no ha sido publicado', 'flash_custom');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            }
        } else {
            $this->Session->setFlash('No ha seleccionado un proyecto', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        }
    }

}

?>
